12. C++ 函数

函数:Python vs C++

在 Python 和 C++ 中,函数的作用相同;函数把语句组合在一起,执行某种任务。函数可以帮助你避免重复地复制和粘贴相同的代码。

函数编写的语法有些不同,主要有三个原因:

  1. Python 通过查看回车符和换行符来检测代码行的结束。C++ 使用分号实现这一功能。
  2. Python 使用缩进将代码语句组合在一起,但 C++ 使用大括号。
  3. Python 是动态类型的,而 C++ 是静态类型的。和声明变量的方法一样,你同样需要声明你的函数。

我们从一个简单的函数开始,并且并排比较 Python 和 C++ 代码。

这个函数代入速度和时间。两者相乘计算出距离。除了语法上的差异,还要特别注意:

  • 函数声明
  • 变量声明
  • main() 内部是什么代码,外部是什么代码。

剖析代码

C++ 代码看起来比 Python 代码长得多,因为 C++ 有一些额外的部分。我们逐句解析这段代码。

代码开始是

# include <iostream>

这里是导入 C++ 标准库的 iostream 部分。需要这行代码才能使用 cout

导入必要的库之后,你可以看到一个函数声明。

float distance(float velocity, float time_elapsed); 

这行代码通知你的 C++ 程序,有一个名为 distance 的函数。这个函数接收两个单精度浮点数并返回一个单精度浮点数。第一个单精度浮点数是 velocity,第二个是 time_elapsed。

然后是 main 函数。所有 C++ 程序都需要 main() 函数,这个函数返回 0。main() 调用 distance 函数并把结果输出到终端。

int main() {

    std::cout << distance(5, 4) << std::endl;
    std::cout << distance(12.1, 7.9) << std::endl;

    return 0;
}

最后是函数定义

float distance(float velocity, float time_elapsed) {
    return velocity * time_elapsed;
}

你之前已经看到过 main() 函数,因此这不是你第一次看到函数如何在 C++ 中发挥作用。注意,main 函数和 distance 函数的语法非常相似。唯一的区别在于,main 函数不接受任何参数,并返回值为 0 的整数;而 distance 函数接受两个单精度浮点数并返回一个单精度浮点数。

此外,main 函数不需要单独声明。